package controlmercancias.datos;

import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.SQLException;

import controlmercancias.configuracion.Configuracion;

/**
 * Clase abstracta con los metodos basicos de acceso a la BD implementados. Esta clase implementa IAccesoDatos.
 * @author Gonzalo
 *
 */
public abstract class AccesoDatosBDBase implements IAccesoDatos{
	/**
	 * String con el driver de la BD.
	 */
	private static String DRIVER;
	/**
	 * String con la url a la BD.
	 */
	private static String URL;
	/**
	 * Contiene la conexión a la BD.
	 */
	protected Connection connection; 
	
	/**
	 * Modifica los atributos de clase con la configuración actual.
	 * @param configuración
	 */
	public static void inicializarParametrosConexion (Configuracion configuracion){
		
		DRIVER = configuracion.getDriver();
		URL = configuracion.getUrl();
	}

	/**
	 * Constructor sin parámetros.
	 */
	public AccesoDatosBDBase() {
		super();
	}
	@Override
	public synchronized void init() {
		try {
			Class.forName(DRIVER);
			connection = DriverManager.getConnection(URL);
		} catch (ClassNotFoundException e) {
			e.printStackTrace();
		} catch (SQLException e) {
			e.printStackTrace();
		}
	}
	@Override
	public synchronized void end() {
		try {
			connection.close();
		} catch (SQLException e) {
			e.printStackTrace();
		}
	}
}
